Cloud computing is the use of computing resources (hardware and software) which are available in a remote location and accessible over a network, such as the Internet. Users are able to buy these computing resources (including storage and computing power) as a utility on demand. Cloud computing entrusts remote services with a user's data, software and computation. Use of virtual computing resources can provide a number of advantages including cost advantages and/or ability to adapt rapidly to changing computing resource needs.
In cloud computing, a virtual machine (VM) is an emulation of a particular computer system. Virtual machines operate based on the computer architecture and functions of a real or hypothetical computer, and their implementations may involve specialized hardware, software, or a combination of both. Virtual machine configuration is the arrangement of resources assigned to a virtual machine. The resources allocated to a virtual machine typically include allocated processors, memory, disks, network adapters, user interface, applications, operating system configuration, etc. Configuration refers to both the specific elements included and the way those elements are set up.
Currently, configuration requires a customer to submit a particular API for each instance launched. The APIs can become difficult to manage, particularly when a customer is managing a fleet of virtual machine instances. New techniques are needed to assist customers with configuration of virtual machine instances.